#ifndef MATERIAL_H
#define MATERIAL_H

#include "Color.h"
#include "Light3D.h"

namespace RayTracer
{
    class Material
    {
    private:
	Color color;
	Color spec;
	float phongExp;
	float reflection;
	float refraction;
	float refractiveIndex;

    public:
		
	Material(Color color = Color::White(), Color specular = Color::White(), float phongExponent = 0.0f, float reflection = 0.0f, float refraction = 0.0f, float refractiveIndex = 0.0f);
	    
	Color GetSpecularColor() const;
	void SetSpecularColor(const Color *value);

	float GetPhongExponent() const;
	void SetPhongExponent(float value);

	float GetReflection() const;
	void SetReflection(float value);

	float GetRefraction() const;
	void SetRefraction(float value);

	float GetRefractiveIndex() const;
	void SetRefractiveIndex(float value);
		    
	Color GetColor() const;
	void SetColor(const Color *value);
    };
};
#endif
